1. Field of the Invention
The present invention relates to a multifunction printing device which is to be connected to a network and has functions of an input/output device like a printer and scanning functions, and to an image forming system composed of the device.
2. Description of Related Art
Recently, a lot of image input/output devices such as image scanners, digital multifunction machines and printers have come to be connected to a network. By using such an environment, a technology has been developed conventionally which copies images by outputting images, which are input with an image input device A, from an output device B on the network.
A function of making a copy by performing image input/output with the same device is called “local copy”, and a function of making a copy by performing image input/output with different devices on the network is referred to as “remote copy”.
The remote copy constitutes a base of the following techniques:
[i] Cluster copy that performs, when making a large number of copies, simultaneous print outputs by transferring images read with a single input device to a plurality of output devices; and
[ii] Proxy printing that outputs, when the printing device is in use for PDL printing or the like in a multifunction machine and the copying function of the multifunction machine cannot be used, to another single printer on the network using only the scanner function.
Using the functions of the remote copy, cluster copy and proxy printing makes it possible to consider all the individual input/output devices connected to the network as a single system as a whole, and to improve the productivity of the system in its entirety.
On the other hand, the original remote copy has the following problems because it converts images input with the input device into compressed bitmap data and transmits to the output device:
[1] Since the input device and output device have different color reproduction characteristics, color feeling varies depending on the output device.
[2] When the output device has a resolution (output resolution) higher than the input device, the output device cannot fulfill its performance.
[3] Images can be altered depending on the output device because of the difference in engine characteristics such as thin line reproducibility of the output device (for example, images input with the multifunction machine have been subjected to image processing assuming local printing).
[4] Because of the great data size of the transfer images, it takes a lot of transfer time on the network, thereby reducing the productivity.
To solve the problems, a technique has been developed recently which converts input images to vector data by applying a vectorizing technique and transmits it (see Japanese Patent Laid-Open No. 2006-23942). In addition, a technique has also been developed which converts input images to device independent color space data (common color space data) by applying a color matching (color conversion) technique and transmits it.
By converting the color space of the image data to the device independent color space on the input device side, and then by converting it to the output device dependent color space on the output device side again, the color matching between the input device and output device is made, and thus the foregoing problem [1] is solved.
In addition, vectorizing the bitmap data and transferring the vectorized bitmap data, and rasterizing the vector data received at the output device side in order to output rasterized vector data after converting to the bitmap image matching the output device will:
(a) Enable increasing the resolution up to the resolution of output device with less image deterioration, even if the input device has a resolution (data processing resolution) lower than the output device;
(b) Enable conversion considering the engine characteristics of the output device at a time of the rasterizing processing; and
(c) Reduce the data size as compared with the bitmap data, thereby being able to solve the foregoing problems [2], [3] and [4].
Accordingly, high image quality print output can be obtained regardless of the types of the input/output devices.
(First Problem)
On the other hand, when generating vector data by inputting PDL data, there are some cases where part of the vector data generated includes resolution dependent data according to the installation method of an application, printer driver and PDL interpreter. Thus, as for the generated vector data, which designates a low resolution device (output device) as a target, there are some cases where it includes resolution dependent low resolution data. In this case, it is impossible to obtain high definition (high resolution) print output, even if the vector data is output with a high resolution device (output device).
The following shows an example of the resolution dependent vector data.
(Linearization Processing)
When the vector data contained in the application data or PDL includes a curve, linearization processing is applied. In the linearization processing, resolution dependent processing is carried out in optimization processing after completing a linearization decision and linearization processing. Thus, the vector data after the linearization processing includes resolution dependent data.
The following shows an example of a conventional linearization processing.
A curve contained in the vector data is often a Bezier cubic curve. FIG. 1 shows an example of the linearization processing of a Bezier cubic curve.
FIG. 1 is a flowchart showing an example of the linearization processing of a Bezier cubic curve.
At S101, an input device divides a target Bezier cubic curve into two Bezier cubic curves.
As shown in FIG. 2, as for a Bezier cubic curve consisting of four control points C0, C1, C2 and C3, the Bezier cubic curve is divided into two Bezier cubic curves consisting of L0-L3 and R0-R3 obtained by the following equations:
      T    =                            C          ⁢                                          ⁢          1                +                  C          ⁢                                          ⁢          2                    2        ,          ⁢            L      ⁢                          ⁢      0        =          C      ⁢                          ⁢      0        ,          ⁢            L      ⁢                          ⁢      1        =                            C          ⁢                                          ⁢          0                +                  C          ⁢                                          ⁢          1                    2        ,          ⁢            L      ⁢                          ⁢      2        =                            L          ⁢                                          ⁢          1                +        T            2        ,          ⁢            L      ⁢                          ⁢      3        =                            L          ⁢                                          ⁢          2                +                  R          ⁢                                          ⁢          1                    2        ,          ⁢            R      ⁢                          ⁢      0        =          L      ⁢                          ⁢      3        ,          ⁢            R      ⁢                          ⁢      1        =                  T        +                  R          ⁢                                          ⁢          2                    2        ,          ⁢            R      ⁢                          ⁢      2        =                            C          ⁢                                          ⁢          2                +                  C          ⁢                                          ⁢          3                    2        ,          ⁢            R      ⁢                          ⁢      3        =          C      ⁢                          ⁢      3      
At S102, the input device makes a decision as to whether each Bezier cubic curve obtained by the division at S101 can be considered to be a linear curve (a straight line) or not.
The flowchart of FIG. 3 shows an example of a linearization decision algorithm.
As shown in FIG. 4, assume that the control points of the target Bezier cubic curve of the linearization decision are C0, C1, C2 and C3. Then assume that the vector from C0 to C3 is a vector d, the vector from C0 to C1 is a vector V1, and the vector from C3 to C2 is a vector V2.
In addition, assume that the x component of the vector V1 with respect to the vector d is V1x, and the y component thereof is V1y. Furthermore, assume that the x component of the vector V2 with respect to the vector d is V2x, and the y component thereof is V2y. 
Besides, the magnitude of each vector is represented by | | such as |d| represents the magnitude of the vector d.
At S201, the input device compares |d| with predetermined flatness (threshold), and proceeds to S202 if |d| is less than the flatness, and to S203 if |d| is greater than the flatness.
At S202, the input device compares |V1| and |V2| with the flatness, and if both |V1| and |V2| are less than the flatness, it makes a decision that the linearization decision result is TRUE, that is, that the target Bezier cubic curve is a linear curve, and completes the processing. If |V1| or |V2| is equal to or greater than the flatness, it makes a decision that the linearization decision result is FALSE, that is, that the target Bezier cubic curve is a curve, and completes the processing.
At S203, the input device compares V1y and V2y with the flatness. As a result, if V1y or V2y is greater than the predetermined flatness (threshold), it makes a decision that the linearization decision result is FALSE and completes the processing. If both V1y and V2y are less than the flatness, it proceeds to S204.
At S204, the input device makes a decision by calculating (V1x−|d|) and (−V2x−|d|) as to whether the internal control points (C1 and C2), when they are mapped onto the vector d, fall outside or inside C0 and C3. If they fall inside, the input device makes the linearization decision result TRUE, and if they fall outside, it makes the linearization decision result FALSE, and completes the processing.
As for the flatness used in the linearization decision algorithm, since it is a value considering the resolution at rasterization, it becomes resolution dependent processing.
At S103, according to the decision result at S102, if the linearization decision result is TRUE, the input device proceeds to S104. On the other hand, if the linearization decision result is FALSE, it performs at S105 the linearization processing recursively on the Bezier cubic curve whose linearization decision result is FALSE.
At S104, the input device adds a line connecting the control points C0 and C3 of the Bezier cubic curve, which is decided as a linear curve, as a linear curve segment.
FIGS. 5A-5C show examples of the curve having undergone the linearization processing.
FIG. 5A shows a Bezier curve before the linearization processing. FIG. 5B and FIG. 5C show vectorized data passing through the linearization processing assigning 1200 dpi as a rasterizing target and 600 dpi as a rasterizing target. As is found from FIG. 5B and FIG. 5C, since the number of division of the Bezier cubic curve varies in accordance with the target resolution, the number of the linear curve segments generated varies. Thus, the vector data generated by vectorizing the bitmap data comes to include the resolution dependent data.
(Font Selecting Processing)
As for font data, the data corresponding to the output resolution has been prepared. Accordingly, at font selection, data selection considering an output target device is carried out. In addition, the outline data of the font data includes curve components, and the foregoing linearization processing is also applied to the font scaling processing. Accordingly, the outline data obtained by applying the linearization processing to the text region also becomes resolution dependent data.
(Second Problem)
Furthermore, when generating completely resolution free vector data, that is, vector data considering rendering at any desired resolution, the optimization processing in accordance with the resolution is difficult. If the optimization processing is impossible, the number of objects contained in the vector data increases. This will bring about an increase in the data size, and reduction in the processing rate at the rasterization.
The present invention is implemented to solve the foregoing problems. The present invention provides to generate the vector data at a resolution that will cause little deterioration in quality even if the vector data includes resolution dependent data and is output from any devices on a network. The present invention also provides to make optimization of the vector data while keeping the quality of little deterioration even if it is output from any devices on the network.